#ifndef _MUSIC_H_
#define _MUSIC_H_

struct Music_Emu;

#include <string>

class Music
{
public:
	Music();
	~Music();

	bool Open(std::string & name);
	bool Open(const char *name = "music");
	void Close();
	
	void Play(int track);
	void Resume();
	void Stop();
	void Fade(int time = 0);
	
	bool On()
	{
		return emu != NULL;
	}

	enum Track
	{
		START,
		ALLCLEAR,
		INTER,
		STG3,
		BOSSREADY,
		BOSS,
		GAMEOVER,
		CLEAR,
		STG1,
		STG4,
		STG6,
		PREBOSS,
		PREBOSS2,
		STG2,
		INTER2,
		STG5,
		MENU,
		BOSS6,
		DIALOGUE,
		INTRO,
		PREBOSSF,
		DIALOGUE2,
		END,
		BOSSF,
		PREBOSS6,
		TRACKCT
	};

private:
	Music_Emu *emu;
};

extern Music Mus;

#endif
